import util from '@/common/util'

import {
	wxpay
} from "@/api/order/pay.js"
import store from '@/store'
// 支付组件
let mixinPay = {
	methods: {
		wxpay(data, cb) {
			console.log(data, '支付参数')
			// #ifdef MP-WEIXIN
			data.openId = store.state.openId;
			if (!data.openId) {
				uni.showToast({
					title: "缺少openid",
					icon: "none"
				})
				return
			}
			// #endif
			
			// #ifdef H5
			data.platType = 'h5'
			data.openId = uni.getStorageSync('openid');
			if (!data.openId) {
				uni.showToast({
					title: "缺少openid",
					icon: "none"
				})
				return
			}
			// #endif
			uni.showLoading({
				mask: true
			})
			
			wxpay(data).then(res => {
				uni.hideLoading()
				// #ifdef MP-WEIXIN
				uni.requestPayment({
					provider: 'wxpay', //服务提供商（支付宝）（服务提供商，通过uni.getProvider获取）
					nonceStr: String(res.nonceStr),
					package: String(res.packageStr), // 固定值，以微信支付文档为主
					paySign: String(res.paySign),
					timeStamp: String(res.timeStamp),
					signType: 'RSA', // 根据签名算法生成签名
					success(res) {
						uni.showToast({
							title: '支付成功',
							icon: 'none'
						})
						if (typeof cb == 'function') {
							cb('success')
						}

					},
					fail(err) {
						if (typeof cb == 'function') {
							cb('error')
						}
						console.log(err, 'err')
						uni.showToast({
							title: '支付失败',
							icon: 'none'
						})
					}
				});
				// #endif
				
				// #ifdef H5
				util.wxPay(data, () => {
					cb('success')
				}, () => {
					console.log(err, 'err')
					uni.showToast({
						title: '支付失败',
						icon: 'none'
					})
				})
				// #endif
			}).catch(() => {
				cb('error')
				uni.hideLoading()
			})
			
			
		},
		// 支付宝支付
		alipay(data, cb) {
			let that = this;
			aliPayOrder({
				"orderNo": data.orderNo
			}).then(res => {
				if (res) {
					uni.requestPayment({
						provider: 'alipay', //服务提供商（支付宝）（服务提供商，通过uni.getProvider获取）
						orderInfo: res,
						success(res) {
							uni.showToast({
								title: '支付成功',
								icon: 'none'
							})
							if (typeof cb == 'function') {
								cb()
							}
						},
						fail(err) {
							uni.showToast({
								title: '支付失败',
								icon: 'none'
							})
						}
					});
				} else {

				}
			})
		},

	}
}
export default mixinPay;